using System.Threading.Tasks;
using System.Windows.Forms;
using 游戏服务器.数据类;

namespace 游戏服务器
{
	public sealed class 清理角色 : GM命令
	{
		[字段描述(0, 排序 = 0)]
		public int 限制等级;

		[字段描述(0, 排序 = 1)]
		public int 限制天数;

		public override 执行方式 执行方式 => 执行方式.只能空闲执行;

		public override void 执行命令()
		{
			if (MessageBox.Show($"即将永久删除所有等级小于[{this.限制等级}]级且[{this.限制天数}]天内未登录的角色数据\r\n\r\n此操作不可逆, 请做好数据备份\r\n\r\n确定要执行吗?", "危险操作", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) != DialogResult.OK)
			{
				return;
			}
			主窗口.添加命令日志("<= @" + base.GetType().Name + " 开始执行命令, 过程中请勿关闭窗口");
			主窗口.主界面.BeginInvoke((MethodInvoker)delegate
			{
				Panel 下方控件页2;
				下方控件页2 = 主窗口.主界面.下方控件页;
				主窗口.主界面.设置页面.Enabled = false;
				下方控件页2.Enabled = false;
			});
			Task.Run(delegate
			{
				游戏数据网关.清理角色(this.限制等级, this.限制天数);
				主窗口.主界面.BeginInvoke((MethodInvoker)delegate
				{
					Panel 下方控件页;
					下方控件页 = 主窗口.主界面.下方控件页;
					主窗口.主界面.设置页面.Enabled = true;
					下方控件页.Enabled = true;
				});
			});
		}

		public 清理角色()
		{
			Class2.sov79KqzBKBU1();
			//base._002Ector();
		}
	}
}
